/*
package com.itheima.chap02;

// import java.util.Scanner;

*/
/**
 * 计算员工工资，公式：工资 = 底薪 + 奖金 * 系数
 * 系数分五个等级：
 * A:1.0、B：0.8 、C：0.6、D：0.4、E：0.2
 *//*


public class SalaryDemo {
    public static void main(String[] args) {
        // 调用类的构造方法
        Employee employee = new Employee(); //用了既是耦合，但这是不可避免的耦合（包括这个和下面那两步设置参数）
        // 设置参数，计算工资
        employee.setBaseSalary(5000);  // 用方法setBaseSalary()设置参数，增加约束性条件
        */
/*
        employee.baseSalary  = -5000;
         但不免有人直接给baseSalary 赋值，所以我们要对baseSalary进行私有（即所在内部可以访问，外部没法访问）
         *//*

//        但由于private，我们同时也无法查询baseSalary里面的值，此时，我们可以用方法去取值
        //System.out.println(employee.getBaseSalary());

        employee.setBonus(10000);


        int salary = employee.caculateSalary('C');
         System.out.println("员工工资为：" + salary);
    }
}





        */
/*
        // 底薪
        int baseSalary = 5000;
        // 奖金
        int bonus = 10000;
        // 绩效等级
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入绩效等级：(A/B/C/D/E/F)");
        String grade = scanner.next();

        // 计算薪资
        int salary = caculateSalary(baseSalary, bonus, grade);
        System.out.println("员工工资为：" + salary);
    }
    *//*

     */
/*
     public static int caculateSalary(int baseSalary, int bonus, String grade) {
        // 1.计算奖金系数
         double rate =switch (grade){
             case "A" -> 1.0;
             case "B" -> 0.8;
             case "C" -> 0.6;
             case "D" -> 0.4;
             case "E" -> 0.2;
             default -> 0;
         };
        // 2.计算薪资
        return baseSalary + (int)(bonus * rate);
    }
}
*//*


*/
/**
 * 这种其实就算过程式编程
 * 弊处：当运算变得复杂时，可能要设很多很多的变量与方法，代码量会变多，可读性变差，
 * 如果代码出错，很难找到出错的代码，
 * 同时，如果对代码进行修改，可能会造成一系列的错误，可维护性极差
 */

// 故而，我们需要用到面向对象式的代码对其进行改造

